Automatic Large-Scale Software Verification by Abstract Interpretation

نویسندگان

  • Patrick Cousot
  • Julien Bertrane
چکیده

interpretation is a theory of abstraction and constructive approximation of the mathematical structures used in the formal description of programming languages and the inference or verification of undecidable program properties. Developed in the late seventies with Radhia Cousot, it has since then been considerably applied to many aspects of programming, from syntax, to semantics, and proof methods where abstractions are sound and complete but incomputable to fully automatic, sound but incomplete approximate abstractions to solve undecidable problems such as static analysis of infinite state software systems, contract inference, type inference, termination inference, model-checking, abstraction refinement, program transformation (including watermarking), combination of decision procedures, security, malware detection, etc. This last decade, abstract interpretation has been very successful in program verification for missionand safety-critical systems. An example is Astrée (www.astree.ens.fr) which is a static analyzer to verify the absence of runtime errors in structured, very large C programs with complex memory usages, and involving complex boolean as well as floating-point computations (which are handled precisely and safely by taking all possible rounding errors into account), but without recursion or dynamic memory allocation. Astrée targets embedded applications as found in earth transportation, nuclear energy, medical instrumentation, aeronautics and space flight, in particular synchronous control/command such as electric flight control or more recently asynchronous systems as found in the automotive industry. Astrée is industrialized by AbsInt (www.absint.com/astree). 2 Tsinghua Software Day, Beijing, China, March 15, 2012 © P Cousot • Motivation • An informal introduction to abstract interpretation • A touch of theory of abstract interpretation • A short overview of a few applications and ongoing work on software verification For a rather complete basic introduction to abstract interpretation and applications to cyber-physical systems, see: Content 3 Julien Bertrane, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, & Xavier Rival. Static Analysis and Verification of Aerospace Software by Abstract Interpretation. In AIAA Infotech@@Aerospace 2010, Atlanta, Georgia. American Institute of Aeronautics and Astronautics, 20—22 April 2010. © AIAA. Tsinghua Software Day, Beijing, China, March 15, 2012 © P Cousot Motivation

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Static Analysis and Verification of Aerospace Software by Abstract Interpretation

We discuss the principles of static analysis by abstract interpretation and report on the automatic verification of the absence of runtime errors in large embedded aerospace software by static analysis based on abstract interpretation. The first industrial applications concerned synchronous control/command software in open loop. Recent advances consider imperfectly synchronous programs, paralle...

متن کامل

New test approach for embedded applications

This paper is a tutorial on the principles and applications of static verification by Abstract Interpretation to development, verification and validation of embedded applications. The topics covered include what Abstract Interpretation is, how it works, how it can help in verification and validation activities. It will also present an industrial tool for the automatic detection of runtime errors.

متن کامل

Verification of Complex Computer Systems »

The computing power of computers, which has doubled every eighteen months since 1975, is now so huge that it is possible to embed very large and extremely sophisticated software in ever more complex systems, from small devices to large-scale, interconnected, distributed, real-time systems. This includes the most highly mission-critical and safetycritical computer-based infrastructures, as produ...

متن کامل

Modular and Incremental Analysis of Concurrent Software Systems

Modularization and abstraction are the keys to practical verification and analysis of large and complex systems. We present in an incremental methodology for the automatic analysis and verification of concurrent software systems. Our methodology is based on the theory of abstract interpretation. We first propose a compositional data flow analysis algorithm that computes invariants of concurrent...

متن کامل

Abstract Satisfiability of Linear Temporal Logic

Satisfiability of Linear Temporal Logic Maŕıa del Mar Gallardo, Pedro Merino, Ernesto Pimentel Dpto. de Lenguajes y Ciencias de la Computacion University of Malaga, 29071 Malaga, Spain {gallardo,pedro,ernesto}@lcc.uma.es Abstract. Model Checking has become one of the most powerful methModel Checking has become one of the most powerful methods for automatic verification of software systems. But ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012